// 放大倍数（因为设置的最小字号是6px，但是浏览器无法显示6px的文字，所以需要把所有元素 * 2）
export const BaseScale = 2
// 3.125 mm 约 12px
export const pxmm = 3.125 / 12
export const mmpx = 12 / 3.125
// 字体大小
export function setFontSizeList() {
  type a = { value: number, label: number }
  const arr: a[] = []
  const sizeList = [5, 5.5, 6.5, 7.5, 8, 9, 10, 11, 12, 14, 16, 18, 20, 24, 28, 36, 48]
  sizeList.forEach((item) => {
    arr.push({
      value: item,
      label: item
    })
  })
  return arr
}

// 设置条形码的宽度
export function setBarCodeWidthList() {
  // 20、28.5， 57， 85，113、140、170、226、
  const widths = [40, 57, 170, 226, 280, 340]
  const arr: any[] = []
  widths.forEach((item) => {
    arr.push({
      value: item,
      label: item
    })
  })
  return arr
}

// 设置二维码的大小
export function setQrCodeSizeList() {
  // 16.5 34.5 48, 69 87 103.5
  const widths = [33, 69, 96, 138, 174, 207]
  const arr: any[] = []
  widths.forEach((item) => {
    arr.push({
      value: item,
      label: item
    })
  })
  return arr
}

function getFeildItemVal(fieldCode, jsonObj) {
  let val = ''
  for (let key in jsonObj) {
    if (jsonObj[key][fieldCode]) {
      val = jsonObj[key][fieldCode]
      break
    }
  }
  return val
}

// 设置业务字段
export function setBusinessElementText(item, jsonObj) {
  if (item.type !== 'business') return ''
  const arr: any[] = []
  item.fields.forEach((el) => {
    if (!el.businessType) {
      arr.push(getFeildItemVal(el.fieldCode, jsonObj))
      return
    }
    if (jsonObj[el.businessType] && jsonObj[el.businessType][el.fieldCode]) {
      arr.push(jsonObj[el.businessType][el.fieldCode])
    }
  })
  return arr.join(item.separator)
}


// 画布设置表单
export function canvasFormSource() {
  return {
    width: 33,
    height: 16,
    offsetX: 0,
    offsetY: 0
  }
}

// 元素设置表单
export function elementFormSource(type) {
  let data = {
    left: 0,
    top: 0,
    width: 100,
    height: 30,
    type,
    active: false,
    ratio: false,
  }
  // 文本
  if (type === 'word') {
    data = Object.assign(data, {
      width: 100,
      height: 20,
      content: '文本内容',
      size: 6,
    })
  }
  // 条形码
  if (type === 'barCode') {
    data = Object.assign(data, {
      width: 170,
      height: 50,
    })
  }
  // 二维码
  if (type === 'qrCode') {
    data = Object.assign(data, {
      width: 69,
      height: 69,
      ratio: true,
    })
  }
  // 业务字段
  if (type === 'business') {
    data = Object.assign(data, {
      width: 100,
      size: 6,
      separator: '-',
      fields: []
    })
  }
  return data
}


export function ptToPx(num, type?) {
  const dpi = 96; // 默认值 96dpi
  // if (window.devicePixelRatio) {
  //   dpi = dpi * window.devicePixelRatio;
  // }
  if (type === 'px') {
    return Math.ceil(num * (72 / dpi))
  } else {
    return Math.ceil(num / (72 / dpi))
  }
}

// 设置测试的业务字段
export function setTestBusinessTest(item) {
  if (item.type === 'business') {
    const { fields, separator } = item
    const arr = fields || []
    const textArr = arr.map((item) => item.sampleValue)
    return textArr.join(separator)
  }
  return ''
}

